﻿// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.

using Abp.Domain.Entities;
using Abp.EntityFrameworkCore;
using Abp.EntityFrameworkCore.Repositories;

namespace GCT.Foundation.EntityFrameworkCore.Repositories
{

    public abstract class
        FoundationTemplateRepositoryBase<TEntity, TPrimaryKey> : EfCoreRepositoryBase<FoundationTemplateDbContext, TEntity,
            TPrimaryKey>
        where TEntity : class, IEntity<TPrimaryKey>
    {
        protected FoundationTemplateRepositoryBase(IDbContextProvider<FoundationTemplateDbContext> dbContextProvider)
            : base(dbContextProvider)
        {
        }

        // Add your common methods for all repositories
    }
    /// <summary>
    ///     Base class for custom repositories of the application.
    ///     This is a shortcut of <see cref="LowCodeRepositoryBase{TEntity,TPrimaryKey}" /> for <see cref="int" /> primary
    ///     key.
    /// </summary>
    /// <typeparam name="TEntity">Entity type</typeparam>
    public abstract class FoundationTemplateRepositoryBase<TEntity> : FoundationTemplateRepositoryBase<TEntity, int>
        where TEntity : class, IEntity<int>
    {
        protected FoundationTemplateRepositoryBase(IDbContextProvider<FoundationTemplateDbContext> dbContextProvider)
            : base(dbContextProvider)
        {
        }

        // Do not add any method here, add to the class above (since this inherits it)!!!
    }
}


